The present invention relates to a storage system.
Japanese Unexamined Patent Application Publication 2006-127217, for example, is known as an example of a technique relating to the notification of fault information, which is information relating to a fault in a storage system. According to Japanese Unexamined Patent Application Publication 2006-127217, when a fault is detected, a first storage system notifies a second storage system capable of communicating with the first storage system of fault information, whereupon the second storage system transmits the fault information received from the first storage system to a third storage system capable of communicating with the second storage system. The third storage system then notifies a host computer of the fault information received from the second storage system.
A storage system typically comprises a plurality of storage apparatuses, and a computer for receiving an I/O command from a high order apparatus and transmitting a data write or read command to one or more of the plurality of storage apparatuses in response to the I/O command.
SAS (Serial Attached SCSI) may be employed in the storage system as a communication I/F. In this case, an SAS expander is interposed between a controller and each storage apparatus as a switch device. In a case where the controller serves as the highest order apparatus, the SAS expanders are cascade-connected (for example, connected in series or in a tree structure) from the highest order to the lower orders, and one or more of the storage apparatuses is connected to each SAS expander.
As well as processing performed in response to an I/O command from a high order apparatus (high order I/O processing hereafter), processing performed in the storage system includes back end processing, which is executed irrespective of commands from high order apparatuses. Examples of back end processing include a discovery request, the setting of information in the SAS expanders, and the acquisition of fault information. In SAS, a command from the controller (initiator) to the SAS expander is typically transmitted using an SMP (Serial Management Protocol). However, with SMP, a command conforming to SMP (an SMP command hereafter) is issued to an SMP target expander (the SAS expander serving as the transmission destination of the SMP command), and while the SMP command is processed by the SMP target expander, resources (for example, one or more physical links and PHYs (physical ports) constituting a single pass from the controller to the SMP target expander) between the controller and the SMP target expander are occupied. While these resources are occupied, other commands cannot pass through the physical links and PHYs of the resources. As a result, the performance of the storage system may deteriorate.
Furthermore, in SAS, commands and responses are issued while a connection is established between the controller and target, but the connection between the controller and target may fail. Depending on the cause of the failure, the cause may be eliminated. It is therefore desirable that the cause of the connection failure be specified.
Moreover, various monitoring subject devices (for example, a thermometer, a fan, and a power source device) are provided in a storage system, and monitoring of the various monitoring subject devices is performed as back end processing. Monitoring may be executed by having the controller poll the various monitoring subject devices, but according to SAS standards, the device for executing the monitoring may be offloaded to an SAS expander of a lower order than the controller. The SAS expander monitors its own monitoring subject device, and when a change of state is detected in the device, for example, the SAS expander is able to broadcast a BP (SES) (BP is an abbreviation of “Broadcast Primitive”) to higher order and lower order devices. However, in this case, the BP (SES) does not reach the controller when a fault or the like occurs in the connection between the SAS expander and its monitoring subject device or in the SAS expander itself.
The problems described above are not limited to a case in which SAS is used as a communication I/F in a storage system, and may also occur when other types of I/F are used.